
#pragma once

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define NONE "\033[m"
#define RED "\033[0;32;31m"

#define MAXVEX 100	//最大顶点数
#define INFINITY 65535	//表示∞
typedef struct MGraph{
    int vSz;	//当前顶点数
    int numEdges;		//当前边数
    char ves[MAXVEX];			//顶点表
    int arc[MAXVEX][MAXVEX];	//邻接矩阵
} MGraph;
/// 创建
/// \param points   顶点数组
/// \param edges    边数组
/// \param type 1:有向图 0:无向图
MGraph * MGraphInit(char* points,char edges [][3], int eSz, int type);
//输出矩阵
void MGraphPrint(MGraph * graph);
//深度遍历
void DFSTraverse(MGraph * graph);
//最小生成树 prim算法
void MiniSpanTree_Prim(MGraph graph);
//最短路径 Dijkstra算法
void ShortTestPath_Dijkstra(MGraph graph, int begin, int end);
//最短路径 Floyd 算法
void ShortTestPath_Floyd(MGraph graph, int begin, int end);